package cn.ffcs.bpm.model;

import cn.ffcs.base.model.BaseEntity;
import cn.ffcs.businessrequest.model.BusinessRequest;
import cn.ffcs.businessrequest.model.ReqDelay;
import cn.ffcs.businessrequest.model.ReqProgress;
import cn.ffcs.organ.model.Person;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 实体类：定义基本属性<br/>
 * <table>
 * <tr>
 * <td>负责人/principal:</td>
 * <td colspan="2">g.pany</td>
 * <tr>
 * <td>修改记录/revision:</td>
 * <td colspan="2"></td>
 * </tr>
 * <tr>
 * <td>日期:2009-4-20</td>
 * <td>修改人:g.pany</td>
 * <td>修改说明:</td>
 * </tr>
 * <tr>
 * <td></td>
 * <td></td>
 * <td></td>
 * </tr>
 * </table>
 * @author g.pany
 * @version $Id$
 */

public class ProcTranRecord extends BaseEntity
{
   
    /** 业务实体关联**/
    private String refEntity;
    
    /** 业务实体ID**/
    private BusinessRequest refEntityId;
    
    /** 当前流程节点**/
    private ProcessConfigDetail processStep;
    
    /** 当前流程步骤**/
    private ProcessConfig processConfig;
    
    /** 进展信息 huangjj**/
    private List<ReqProgress> reqProgresses;

    /** 延迟信息 huangjj**/
    private List<ReqDelay> reqDelayes;
    
    /** 办理人员**/
    private Person transactor;
    
    /** 办理信息**/
    private String transactInfo;
    
    /** 办理时间**/
    private Date transactTime;
    
    /** 到达时间**/
    private Date receiveTime;
    
    /** 排序**/
    private Integer orderBy;

    //TODO by junyang flow pvc
    private Integer procinstId;
    
    private String state;
    
    private Date expireTime;
    
    private String matters;
    
    private String taskType;
    /**  判断是否存入消息表中   **/
    private String isSend;
    //针对业务进行扩展
    private String taskAppExt;
    //end
    
    /** default constructor */
    public ProcTranRecord() {
    }

    /** minimal constructor */
    public ProcTranRecord(int id) {
        this.id = id;
    }
    
    public void addReqProgressList(ReqProgress reqProgress){
        if(reqProgresses==null){
            reqProgresses=new ArrayList<ReqProgress>();
        }
        reqProgresses.add(reqProgress);
    }
    
    public void addReqDelayList(ReqDelay reqDelay){
        if(reqDelayes==null){
            reqDelayes=new ArrayList<ReqDelay>();
        }
        reqDelayes.add(reqDelay);
    }
    public ProcessConfig getProcessConfig()
    {
        return processConfig;
    }

    public void setProcessConfig(ProcessConfig processConfig)
    {
        this.processConfig = processConfig;
    }

    public Date getReceiveTime()
    {
        return receiveTime;
    }

    public void setReceiveTime(Date receiveTime)
    {
        this.receiveTime = receiveTime;
    }

    public String getRefEntity()
    {
        return refEntity;
    }

    public void setRefEntity(String refEntity)
    {
        this.refEntity = refEntity;
    }

    public Date getTransactTime()
    {
        return transactTime;
    }

    public void setTransactTime(Date transactTime)
    {
        this.transactTime = transactTime;
    }

    public BusinessRequest getRefEntityId()
    {
        return refEntityId;
    }

    public void setRefEntityId(BusinessRequest refEntityId)
    {
        this.refEntityId = refEntityId;
    }

    public Person getTransactor()
    {
        return transactor;
    }

    public void setTransactor(Person transactor)
    {
        this.transactor = transactor;
    }

    public String getTransactInfo()
    {
        return transactInfo;
    }

    public void setTransactInfo(String transactInfo)
    {
        this.transactInfo = transactInfo;
    }

    public ProcessConfigDetail getProcessStep()
    {
        return processStep;
    }

    public void setProcessStep(ProcessConfigDetail processStep)
    {
        this.processStep = processStep;
    }

    public Integer getOrderBy()
    {
        return orderBy;
    }

    public void setOrderBy(Integer orderBy)
    {
        this.orderBy = orderBy;
    }

    public List<ReqProgress> getReqProgresses()
    {
        return reqProgresses;
    }

    public void setReqProgresses(List<ReqProgress> reqProgresses)
    {
        this.reqProgresses = reqProgresses;
    }

    public List<ReqDelay> getReqDelayes()
    {
        return reqDelayes;
    }

    public void setReqDelayes(List<ReqDelay> reqDelayes)
    {
        this.reqDelayes = reqDelayes;
    }

	public Integer getProcinstId() {
		return procinstId;
	}

	public void setProcinstId(Integer procinstId) {
		this.procinstId = procinstId;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public Date getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(Date expireTime) {
		this.expireTime = expireTime;
	}

	public String getMatters() {
		return matters;
	}

	public void setMatters(String matters) {
		this.matters = matters;
	}

	public String getTaskType() {
		return taskType;
	}

	public void setTaskType(String taskType) {
		this.taskType = taskType;
	}

	public String getIsSend() {
		return isSend;
	}

	public void setIsSend(String isSend) {
		this.isSend = isSend;
	}

	public String getTaskAppExt() {
		return taskAppExt;
	}

	public void setTaskAppExt(String taskAppExt) {
		this.taskAppExt = taskAppExt;
	}



}
